import request from '@/utils/request'
/**
 * 存用户信息
 * @param {*} payload
 * @returns
 */
export const saveUser = (payload) => {
  return {
    type: 'profile/user',
    payload,
  }
}

/**
 *获取用户基本信息
 * @returns
 */
export const getUser = () => {
  return async (dispatch) => {
    const res = await request.get('/user')
    dispatch(saveUser(res.data))
    console.log(res)
  }
}

/**
 *获取用户详情
 * @returns
 */

export const getUserProfile = () => {
  return async (dispatch) => {
    const res = await request.get('/user/profile')
    console.log(res)
    const profile = res.data
    dispatch(setUserProfile(profile))
  }
}

/**
 * 设置个人详情
 * @param {*} profile
 * @returns
 */
export const setUserProfile = (profile) => ({
  type: 'profile/profile',
  payload: profile,
})

/**
 * 保存修改个人详情
 * @param {*} payload
 * @returns
 */
// export const saveProfile = (payload) => {
//   return {
//     type: 'profile/update',
//     payload,
//   }
// }
/**
 *修改个人详情：昵称、简介、生日、性别 （每次修改一个字段）
 * @param {*} data
 * @returns
 */
export const updateProfile = (data) => {
  return async (dispatch) => {
    // 调用接口将数据更新到后端
    const res = await request.patch('/user/profile', data)

    // 如果后端更新成功，则再更新 Redux 中的数据
    if (res.message === 'OK') {
      dispatch(getUserProfile())
    }
  }
}

export const updatePhoto = (fd) => {
  return async (dispatch) => {
    await request.patch('/user/photo', fd)
    dispatch(getUserProfile())
  }
}
